Network traffic is transmitted over a network, such as the Internet, from a sending system (e.g., a computer system) to a receiving system (e.g., a computer system) via a physical network interface card (NIC). The physical NIC is a piece of hardware found in a typical computer system that includes functionality to send and receive network traffic. Typically, network traffic is transmitted in the form of packets, where each packet includes a header and a payload. The header includes information regarding the source address, destination address, size, transport protocol used to transmit the packet, and various other identification information associated with the packet. The payload includes the actual data to be transmitted from the network to the receiving system.
Typically, the physical NIC includes various capabilities, which are used to process the received packets. The following are some examples of capabilities the physical NIC may include: maximum bandwidth the physical NIC can support and cryptographic off-loading functionality. The capabilities of the physical NIC are typically exposed to the host via a device driver. The host or, more specifically, a process executing thereon, may use one or more of exposed capabilities. Further, if multiple processes executing on the host use the physical NIC, then all of the capabilities are exposed to all of the processes.